package model;

import java.text.DecimalFormat;
import java.util.Calendar;
import java.util.concurrent.TimeUnit;

import javax.swing.ImageIcon;

public class Veiling {

	private String titel;
	private ImageIcon foto;
	private double prijs;
	private Calendar eindtijd;
	private Gebruiker verkoper;
//	private ArrayList<Bod> biedingen;
	private String omschrijving;
	private int id;
	private double highestBid;

	public Veiling(String titel, ImageIcon foto, double prijs, Gebruiker verkoper, String omschrijving){
		this.titel = titel;
		this.foto = foto;
		this.prijs = prijs;
		this.verkoper = verkoper;
		this.omschrijving = omschrijving;


		Calendar c = Calendar.getInstance();
		c.set(2, 2);	//  2 maand verder
		eindtijd = c;
	}

	public boolean getExpired(){
		Calendar calendar1 = Calendar.getInstance();
		if(calendar1.before(eindtijd)){
			return false;
		} else{
			return true;
		}
	}

	public String getTitel() {
		return titel;
	}

	public void setTitel(String titel) {
		this.titel = titel;
	}

	public ImageIcon getFoto() {
		return foto;
	}

	public void setFoto(ImageIcon foto) {
		this.foto = foto;
	}

	public double getPrijs() {
		return prijs;
	}

	public void setPrijs(double prijs) {
		this.prijs = prijs;
	}

	public Calendar getEindtijd() {
		return eindtijd;
	}


	public String getRemaining(){
		Calendar calendar1 = Calendar.getInstance();

		long milliseconds1 = calendar1.getTimeInMillis();
		long milliseconds2 = eindtijd.getTimeInMillis();
		long diff = milliseconds2 - milliseconds1;

		long seconden = TimeUnit.MILLISECONDS.toSeconds(diff);

		long days = seconden / 86400;
		long remainderdays = seconden % 86400;

		long hours = remainderdays / 3600;
		long remainder = remainderdays % 3600;
		long minutes = remainder / 60;
		long seconds = remainder % 60;


		String formattedhours = String.format("%02d", hours);
		String formattedminutes = String.format("%02d", minutes);
		String formattedseconds = String.format("%02d", seconds);



		if(days == 0 ){
			return formattedhours + ":" + formattedminutes + ":" + formattedseconds;
		} else {
			return days + " dagen en " + formattedhours + ":" + formattedminutes + ":" + formattedseconds;

		}


	}


	public void setEindtijd(Calendar eindtijd) {
		this.eindtijd = eindtijd;
	}

	public Gebruiker getVerkoper() {
		return verkoper;
	}

	public void setVerkoper(Gebruiker verkoper) {
		this.verkoper = verkoper;
	}

//	public ArrayList<Bod> getBiedingen() {
//		return biedingen;
//	}
//
//	public void addBiedingen(Bod bod) {
//		biedingen.add(bod);
//	}
//
//	public void setBiedingen(ArrayList<Bod> biedingen){
//		this.biedingen = biedingen;
//	}

	public String getOmschrijving() {
		return omschrijving;
	}

	public void setOmschrijving(String omschrijving) {
		this.omschrijving = omschrijving;
	}

	public int getId() {
		return id;
	}

	public void setId(int id) {
		this.id = id;
	}

	public void setHighestBid(double highestBid) {
		this.highestBid = highestBid;
	}
	public String getHighestBid(){
		DecimalFormat f = new DecimalFormat("0.00");
		return f.format(highestBid); 
	}

	public double getHighestBidDouble() {
		return highestBid;
	}



}
